package com.yyy.entity;

import cn.hutool.core.util.RandomUtil;
import lombok.Data;
import lombok.ToString;

/**
 * @author com.yyy
 * @Date 2020-09-12 15:50
 * @Email yangyouyuhd@163.com
 * @apiNote 消息的封装实体
 */
@Data
@ToString
public class Message<T> {
    /**
     * 用户发送的消息体
     */
    private T body;
    /**
     * 消息唯一Id、确认抵达、拒收等用
     */
    private Long msgId;
    /**
     * 泛型的clazzName
     */
    private String GenericName;
    /**
     * 过期时间
     */
    private Long ttl;
    /**
     *  手动确认机制
     */
    private boolean isAck;

    public Message() {
        msgId = RandomUtil.randomLong();
    }

    public Message(T body) {
        this();
        this.body = body;
    }

    public void basicAck() {
        this.isAck = true;
    }
}
